1. Field of the Invention
The present invention relates generally to an apparatus and method for transmitting/receiving signals in a communication system, and in particular, to an apparatus and method for transmitting/receiving signals in a communication system using Low Density Parity Check (LDPC) codes.
2. Description of the Related Art
With the rapid progress of communication systems, there is an increasing demand in wireless networks for the development of a scheme capable of transmitting massive data, quantity of which approaches the capacity of wired networks. To meet the demand for the high-speed, high-capacity communication system capable of processing and transmitting a variety of information such as image and radio data beyond the early voice-oriented service, there is a need to increase transmission efficiency of the system with use of an appropriate channel coding scheme for the improvement of the system performance. However, communication systems, for example, mobile communication systems because of their characteristics, inevitably suffer errors due to noises, interferences and fading according to channel conditions during data transmission, and the occurrence of errors causes loss of data.
It is possible to improve reliability of the communication systems reducing the data loss due to the occurrence of errors by using various error control schemes according to characteristics of channels. The technique of using error correction codes is the most popular one of the error control schemes. The representative error correction codes include turbo codes and LDPC codes.
It is known that turbo codes are superior in performance gain during high-speed data transmission, compared with the convolutional codes, which have been generally used for error correction. The turbo codes can effectively correct errors due to noises generated in transmission channels, thereby contributing to an increase in reliability of data transmission. In addition, LDPC codes can be decoded using a sum-product based iterative decoding algorithm in a factor graph. A decoder for the LDPC codes, as it uses the sum-product iterative decoding algorithm, has lower complexity compared with a decoder for the turbo codes and can be simply realized with a parallel processing decoder.
Shannon's channel coding theorem shows that reliable communication is possible only at the data rate not exceeding the capacity of channels. However, in Shannon's channel coding theorem, there has been no specific presentation of a channel coding and decoding method supporting a data rate up to the maximum capacity limit of channels. Generally, random codes having a very large block size show the performance approaching the channel capacity limit of Shannon's channel coding theorem, but actual implementation thereof was impossible because use of a Maximum A Posteriori (MAP) or Maximum Likelihood (ML) decoding method causes a great load in calculation.
Turbo codes were proposed by Berrou, Glavieux and Thitimajshima in 1993, and have good performance approaching the channel capacity limit of Shannon's channel coding theorem. The proposal of turbo codes has triggered the study of iterative decoding and graphical expression of codes, and LDPC codes, which had already been proposed by Gallager in 1962 were newly lighted up at that time. In addition, there are cycles in factor graphs of the turbo code and the LDPC code, and it has already been well known that iterative decoding in the factor graph of the LDPC code, having cycles, is suboptimal. The term ‘cycle’ refers to a loop formed by edges connecting variable nodes to check nodes in a factor graph of an LDPC code.
It has also been experimentally proved that the LDPC codes have superior performance through iterative decoding. The LDPC codes having the best performance among the ever-known codes show performance that they have only the difference of about 0.04 [dB] at the channel capacity limit of Shannon's channel coding theorem at a Bit Error Rate (BER) of 10−5 with use of a block size of 107. In addition, LDPC codes defined in Galois Field (GF) with q>2, i.e. in GF(q), increase in complexity in their decoding process, but show much better performance compared with the binary codes. However, there has been no satisfactory theoretical description for successful decoding of the LDPC codes defined in GF(q) by the iterative decoding algorithm.
In addition, the LDPC code, proposed by Gallager, is defined by a parity check matrix in which the major elements have a value of ‘0’ (zero) and the minor elements except for the elements having a value of ‘0’ have a non-zero value, for example, a value of ‘1’. For example, an (N, j, k) LDPC code, a linear block code with a block length N, is defined by a parse-structured parity check matrix including j elements with a value of ‘1’ for each column and k elements with a value of ‘1’ for each row, wherein all the elements except for the elements having a value of ‘1’ have a value of ‘0’.
An LDPC code defined by a parity check matrix, in which the weight of each column is constant to j and the weight of each row is constant to k as described above, is referred to as a ‘regular LDPC code’. The term ‘weight’ as used herein refers to the number of elements having a non-zero value among the elements constituting the generation matrix and parity check matrix. In contrast, an LDPC code defined by a parity check matrix, in which the weight of each column and the weight of each row are not constant, is referred to as an ‘irregular LDPC code’. It is known that the irregular LDPC code is generally superior in performance to the regular LDPC code. However, as to the irregular LDPC code, the weight of each column and the weight of each row in its parity check matrix should be appropriately adjusted to guarantee its excellent performance, because the weight of each column and the weight of each row in the parity check matrix are not constant, i.e. irregular.
With reference to FIG. 1, a description will now be made of a parity check matrix of an (N, j, k) LDPC code, for example, (8, 2, 4) LDPC code.
FIG. 1 illustrates a parity check matrix of a general (8, 2, 4) LDPC code.
Referring to FIG. 1, a parity check matrix H of the (8, 2, 4) LDPC code is composed of 8 columns and 4 rows, wherein the weight of each column is regular to 2 and the weight of each row is regular to 4. Because the weight of each column and the weight of each row in the parity check matrix are regular in this way, the (8, 2, 4) LDPC code shown in FIG. 1 is a regular LDPC code.
The parity check matrix of the (8, 2, 4) LDPC code has been described in FIG. 1. With reference to FIG. 2, a description will now be made of a factor graph of the (8, 2, 4) LDPC code shown in FIG. 1.
FIG. 2 illustrates a factor graph of the (8, 2, 4) LDPC code shown in FIG. 1.
Referring to FIG. 2, the factor graph of the (8, 2, 4) LDPC code includes 8 variable nodes x1 designated as 211, x2 as 213, x3 as 215, x4 as 217, x5 as 219, x6 as 221, x7 as 223 and x8 as 225, and 4 check nodes 227, 229, 231 and 233. If an element having a value of ‘1’, i.e. a non-zero value, exists in the point where an ith row and a jth column of a parity check matrix of the (8, 2, 4) LDPC code intersect with each other, a branch is generated between a variable node xi and a jth check node.
Because the parity check matrix of the LDPC code has a very low weight as described above, decoding is possible through iterative decoding even in the block code having a relatively long length, and if the block length of the block code continues to increase, the block code shows the performance approaching the Shannon's channel capacity limit, like the turbo code. In addition, MacKay and Neal have already proved that the iterative decoding process of the LDPC code using a flow transfer scheme shows performance approaching the performance of the iterative decoding process of the turbo code.
To generate a high-performance LDPC code, the following several conditions should be satisfied.
(1) A cycle in a factor graph of an LDPC code should be considered.
The length of the cycle is defined as the number of edges constituting the loop. A long length of the cycle indicates that there are a large number of edges connecting variable nodes to check nodes, the edges constituting the loop in the factor graph of the LDPC code. On the contrary, a short length of the cycle indicates that there are a small number of edges connecting variable nodes to check nodes, the edges constituting the loop in the factor graph of the LDPC code.
An increase in length of the cycle in the factor graph of the LDPC code increases performance of the LDPC code for the following reasons. The increase in length of the cycle in the factor graph of the LDPC code prevents performance degradation such as an error floor, which may occur when there are many short-length cycles in the factor graph of the LDPC code.
(2) Efficient coding of the LDPC code should be considered.
Real-time coding is difficult with the LDPC code due to the high coding complexity, compared with the convolutional code or the turbo code. Although a Repeat Accumulate (RA) code has been proposed to reduce the coding complexity of the LDPC code, the RA code also shows a limit in reducing the coding complexity of the LDPC code. Therefore, efficient coding of the LDPC code should be considered.
(3) Degree distribution in a factor graph of an LDPC code should be considered.
Generally, an irregular LDPC code is superior in performance to a regular LDPC code, because the factor graph of the irregular LDPC code has various degrees. The term ‘degree’ as used herein refers to the number of edges connected to nodes, i.e. variable nodes and check nodes, in the factor graph of the LDPC code. In addition, ‘degree distribution in the factor graph of the LDPC code’ refers to a ratio of the number of nodes having a specific degree to the total number of nodes. Richardson et al. has already proven that an LDPC code having a specific degree distribution shows excellent performance.
Even though the current communication system considers using the LDPC codes, channel interleaving/deinterleaving scheme in the communication system using the LDPC code has never been proposed as a signal transmission/reception scheme. Accordingly, there is a need for a scheme of transmitting/receiving signals in the communication system using LDPC codes.